%.o : %.cpp scripts.h
	g++ -shared -c -Werror -fPIC -O2 $(CFLAGS) $< -o $@

ALL: $(TARGET) patcher

$(TARGET): gmmain.o gmfunc.o gmscripts.o gmkeyhook.o gmctf.o gmcrate.o gmgamelog.o gmcommandclass.o gmsettingsclass.o engine_gm.o date.o dan.o dllmain.o jfwcine.o jfwcust.o jfwdmg.o jfwgame.o jfwhook.o jfwmisc.o jfwpoke.o jfwpow.o jfwscr.o jfwsnd.o jfwveh.o jfwweap.o jfwzone.o jfwobj.o jfwws.o kak.o neo.o nh.o nhp.o ra2.o reborn.o renalert.o scriptfactory.o scriptregistrar.o scripts.o scud.o shawk.o survival.o tda.o tfx.o mdb.o renalert2.o kamuix.o mdbdef.o mdbevf.o ra_legacy.o gap.o engine_bhs.o engine_common.o engine_def.o engine_dmg.o engine_game.o engine_io.o engine_net.o engine_obj.o engine_obj2.o engine_phys.o engine_player.o engine_pt.o engine_script.o engine_string.o engine_tdb.o engine_threading.o engine_weap.o engine_math.o jfwdef.o jfwgun.o jmgrp2.o z.o
	g++ -shared -ldl $^ -o $@

patcher: patcher.c
	gcc -Werror -O2 $(CFLAGS) $< -o $@

gmmain.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h engine_gm.h gmmain.h
gmfunc.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h engine_gm.h gmmain.h date.h
gmscripts.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h engine_gm.h gmmain.h
gmkeyhook.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h engine_gm.h gmmain.h gmkeyhook.h
gmctf.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h engine_gm.h gmmain.h
gmcrate.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h engine_gm.h gmmain.h
gmgamelog.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h engine_gm.h gmmain.h
gmcommandclass.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h engine_gm.h gmmain.h
gmsettingsclass.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h engine_gm.h gmmain.h
engine_gm.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h gmmain.h

dllmain.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h engine_gm.h gmmain.h

engine_bhs.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
engine_common.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
engine_def.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
engine_dmg.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
engine_game.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
engine_io.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
engine_net.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
engine_obj.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
engine_obj2.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
engine_phys.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
engine_player.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
engine_pt.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
engine_script.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
engine_string.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
engine_tdb.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
engine_threading.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
engine_weap.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
engine_math.o: engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h

dan.o: dan.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h

jfwcine.o: jfwcine.h
jfwcust.o: jfwcust.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
jfwdmg.o: jfwdmg.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
jfwgame.o: jfwgame.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
jfwhook.o: jfwhook.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
jfwmisc.o: jfwmisc.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
jfwpoke.o: jfwpoke.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
jfwpow.o: jfwpow.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
jfwscr.o: jfwscr.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
jfwsnd.o: jfwsnd.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
jfwveh.o: jfwveh.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
jfwweap.o: jfwweap.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
jfwzone.o: jfwzone.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
jfwgun.o: jfwgun.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
jfwdef.o: jfwdef.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h
jfwobj.o: jfwobj.h
jfwwws.o: jfwws.h

kak.o: kak.h

neo.o: neo.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h

nh.o: nh.h

nhp.o: nhp.h

ra2.o: ra2.h

nh.o: nh.h

reborn.o: reborn.h

renalert.o: renalert.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h

scud.o: scud.h

shawk.o: shawk.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h

survival.o: survival.h

tda.o: tda.h

tfx.o: tfx.h

mdb.o: mdb.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h mdbevf.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h

renalert2.o: renalert2.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h

kamuix.o: kamuix.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h

mdbevf.o: mdbevf.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h

mdbdef.o: mdbdef.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h

ra_legacy.o: ra_legacy.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h

gap.o: gap.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h

z.o: z.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h

jmgrp2.o: jmgrp2.h engine.h engine_common.h engine_vector.h engine_threading.h engine_io.h engine_string.h engine_math.h engine_net.h engine_def.h engine_weap.h engine_obj.h engine_obj2.h engine_player.h engine_game.h engine_bhsdef.h engine_pt.h engine_tdb.h engine_dmg.h engine_phys.h engine_script.h engine_bhs.h